import { Ref, unref, computed } from 'vue';

export function useUploadType({
	acceptRef,
	helpTextRef,
	maxNumberRef,
	maxSizeRef,
}: {
	acceptRef: Ref<string[]>;
	helpTextRef: Ref<string>;
	maxNumberRef: Ref<number>;
	maxSizeRef: Ref<number>;
}) {
	// 文件类型限制
	const getAccept = computed(() => {
		const accept = unref(acceptRef);
		if (accept && accept.length > 0) {
			return accept;
		}
		return [];
	});
	const getStringAccept = computed(() => {
		return unref(getAccept)
			.map(item => {
				if (item.indexOf('/') > 0 || item.startsWith('.')) {
					return item;
				} else {
					return `.${item}`;
				}
			})
			.join(',');
	});

	// 支持[accept]jpg、jpeg、png格式，不超过2M，最多可选择10张图片。
	const getHelpText = computed(() => {
		const helpText = unref(helpTextRef);
		if (helpText) {
			return helpText;
		}
		const helpTexts: string[] = [];

		const accept = unref(acceptRef);
		if (accept.length > 0) {
			helpTexts.push(`支持${accept.join(',')}格式`);
		}

		const maxSize = unref(maxSizeRef);
		if (maxSize) {
			helpTexts.push(`单个文件不超过${maxSize}MB`);
		}

		const maxNumber = unref(maxNumberRef);
		if (maxNumber && maxNumber !== Infinity) {
			helpTexts.push(`最多只能上传${maxNumber}个文件`);
		}
		return helpTexts.join('，');
	});
	return { getAccept, getStringAccept, getHelpText };
}
